#ifndef H_A2SYSDEF
#define H_A2SYSDEF


#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
# if !defined(DLL) && !defined(_DLL) && !defined(__DLL__)
#  ifndef NODLL
#   define NODLL
#  endif
# endif
# if !defined(__DPMI16__) && !defined(__DPMI32__)
#  if defined(__WIN32__) || defined(WIN32) || defined(_WIN32)
#   define __FOR_WIN32__
#  else
#   define __FOR_WINDOWS__
#  endif
# else
#  ifdef __DPMI32__
#   define __FOR_DPMI32__
#  else
#   define __FOR_DPMI16__
#  endif
# endif
#else
# define __FOR_DOS__
#endif

#if defined(__FOR_WIN32__) || defined(__FOR_DPMI32__) || defined(__FOR_WINDOWS__)
# if defined(_CONSOLE) || defined(__CONSOLE__) || defined(EMU_CONSOLE)
#  define __CONS_TV__
# endif
# if !defined(__CONS_TV__) || defined(SERVER)
#  define __STRIP_TV__
# endif
#endif

/* Intel x86 */
#define A2_FIRST_LOBYTE

/* Motorola  */
/* #define A2_FIRST_HIBYTE */

#ifdef A2_FIRST_LOBYTE
# define A2_SHORT_C2(c1,c2) (short)((c1)+(c2)*256)
#else
# define A2_SHORT_C2(c1,c2) (short)((c1)*256+(c2))
#endif

#if defined(_Windows) || defined(_WINDOWS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
# ifndef __WINDOWS_H
#  ifndef _INC_WINDOWS
#   include <windows.h>
#  endif
# endif
#else
  typedef unsigned char  BYTE;
  typedef unsigned short WORD;
  typedef unsigned long  DWORD;
#endif

#ifndef __STDIO_H
# ifndef __STDIO_DEF_
#  ifndef _INC_STDIO
#   include <stdio.h>
#  endif
# endif
#endif

#ifdef __WATCOMC__
# include <stddef.h>
#endif

#if defined(__FOR_WINDOWS__) || defined(__FOR_WIN32__)
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#  if defined(__DPMI16__) || defined(__FOR_DOS__)
#    define A2EXP
#    define EXPORTFUNC
#    define EXTERNFUNC
#  else
#    if ( _MSC_VER > 800)
#      ifndef H_A2NIKA
#        define EXPORTFUNC __declspec(dllexport)
#      else
#        define EXPORTFUNC __declspec(dllimport)
#      endif
#      define A2EXP EXPORTFUNC
#    else
#      define A2EXP FAR _export
#      define EXPORTFUNC FAR PASCAL _export
#    endif
#    define EXTERNFUNC extern
#  endif
#  define A2CALLBACK CALLBACK
#else
#  define A2EXP
#  define EXPORTFUNC
#  define EXTERNFUNC
#  ifdef __FOR_DOS__
#    define FAR far
#  endif
#  define A2CALLBACK
#endif



#if defined(__FOR_WINDOWS__) || defined(__FOR_WIN32__)

//--------------- !!!!!!!!!!!!!!!!!!!!!!!
#pragma warn -pck
#pragma option -a1
//--------------------

# define A2EXT EXTERNFUNC
# define A2PAS EXPORTFUNC
#else
# define A2EXT
# define A2PAS pascal
#endif

#if defined(__FOR_DPMI32__) || defined(__FOR_WIN32__)
# define A2NEAR
# define A2HUGE
# define A2FAR
#else
# define A2NEAR near
# define A2HUGE huge
# define A2FAR  far
#endif

/*------------------------------------------------------------------*/
/*---------------------------- T Y P E S ---------------------------*/
/*------------------------------------------------------------------*/
#ifndef __WATCOMC__
#if (__TURBOC__ >= 0x460) || (_MSC_VER >= 800)
# include <pshpack1.h>
#endif
#endif

struct a2datetm {
   short year;
   short month;
   short day;
   short hour;
   short minute;
   short second;
};

#ifndef __WATCOMC__
#if (__TURBOC__ >= 0x460) || (_MSC_VER >= 800)
# include <poppack.h>
#endif
#endif

#ifndef H_A2NIKA

#ifdef __cplusplus
 extern "C" {
#endif

int a2dummy0 (void); /* dummy function return  0 */
int a2dummy_1(void); /* dummy function return -1 */

#ifdef __cplusplus
 }
#endif

#endif /* H_A2NIKA */

#endif /* H_A2SYSDEF */
